The present invention relates to computer implemented workflow systems.
A workflow specification is a description of how a class of objects should be handled. Such objects may be, for example, an incoming call to a call center, insurance claims arriving at a claim center, requests for information from an Internet web site, etc. The workflow specification describes how agents (humans) and/or components (software and hardware) interact to accomplish specific goals. Such components generally include components which are external to the workflow system. The present invention is concerned with workflow specifications executing on computer systems in order to implement workflow systems.
There is an increasing need to customize workflow systems based on a combination of information about the object being processed and the current operational status of the system. Such customization is complex as it often depends on various parameters. For example, in a workflow system implementing a call center which requires a customer credit check, there may be several types of credit checks, ranging from simple to complex, which could be selected for a particular customer. The specific type of credit check chosen could depend on a number of parameters, such as past experience with the particular customer, the amount of credit requested, etc.
Most current workflow systems are based on procedural specifications. In a procedural specification, the specification explicitly states the steps to be taken during workflow execution and the sequence of those steps. Such procedural workflow specifications may be represented using flowcharts, text based descriptions, or a combination of text and flowcharts. A procedural workflow may be specified using well known computer programming languages, such as C++.
One problem with the procedural specification of workflow systems is that modifications to the workflow specification may be difficult. As a result of the nature of procedural specifications, a modification to change one aspect of how an object is processed may require changes to many parts of the specification which implement that aspect. This is because one aspect of the workflow may depend on many execution threads within the procedural specification. Another problem with procedural specifications is that they are difficult to analyze because the resulting workflow execution may depend on many execution threads.
One solution to the problem of procedural specification of workflows is described in Narayanan Krishnakumar and Amit Sheth, Managing Heterogeneous Multi-system Tasks to Support Enterprise-wide Operations, Distributed and Parallel Databases, 3, 1-33 (1995). In the workflow system described therein, the flow of control is specified using rules having the form xe2x80x9cevent-condition-actionxe2x80x9d, such that when a certain event occurs, if the condition is true, then the specified action is performed. As such, whether or not an action is performed is dependent on a condition being true at the time an event occurs, where the event may be, for example, the completion of some action. Thus, these rules are, at least implicitly, dependent on the duration of actions because the evaluation of whether a condition is true may depend on when an action completes. While this type of system provides some advantages over the purely procedural specification of workflows, the above described time dependence results in many of the same problems. Specifically, workflows described in this manner are difficult to analyze and understand.
U.S. Pat. No. 5,809,212 entitled Conditional Transition Networks and Computational Processes for Use Interactive Computer-Based Systems, is directed to a conditional transition network for representing a domain of knowledge in a computer system. Although the system described therein utilizes time independent rules for processing, the system is not a workflow system, but instead is directed to accessing stored information (e.g. documents). As such, the system does not control external components and is therefore not appropriate for a workflow system because most workflow systems require control of external components for the processing of objects.
The present invention is a workflow system which, as a result of certain properties, is an improvement over prior workflow systems. One such property is that the workflow system in accordance with the invention is specified declaratively, such that the workflow specification explicitly describes the steps to be taken during workflow execution, but the order of those steps is implicit in the specification. In addition, the specification includes modules which, when executed, result in the initiation of side-effect actions which are performed by components external to the workflow system. Whether or not the modules are executed is determined by associated enabling conditions which are independent of the time duration of module execution. The set of data flow dependencies and enabling flow dependencies between the modules and the enabling conditions is acyclic.
As will be apparent to those of ordinary skill in the art by reference to the following detailed description and the accompanying drawings, a workflow system designed in accordance with the present invention improves on prior workflow systems in several respects. First, since the specification is declarative, aspects of the workflow can be easily modified by changing the part of the specification which implements the aspect, rather than having to modify many parts of a procedural specification as in prior workflow systems. Further, since the enabling conditions are independent of the time duration of module execution, the behavior of the workflow system can be more easily analyzed and understood.